package com.teach.dto;

import java.util.Date;

import lombok.Data;

/**
 * <pre>
 * 含基础搜素条件的分页查询模型
 * 创建时间 ：	2019年12月2日 下午2:44:23
 * 当前版本：	V1.0
 * Copyright © 1998 - 2019 jlzhou.top. All Rights Reserved	
 * </pre>
 * @author J.L.Zhou
 *
 */
@Data
public class Search {
	
	/**
	 * 当前页面，默认：1
	 */
	private Integer current = 1;
	
	/**
	 * 每页最大数，默认：10
	 */
	private Integer rowMax = 10;
	

	/**
	 * 通用开始日期，格式:yyyy-MM-dd
	 */
	private Date startDate;
	
	/**
	 * 通用结束时间，格式:yyyy-MM-dd
	 */
	private Date endDate;

	/**
	 * 通用开始时间，格式：yyyy-MM-dd HH:mm
	 */
	private Date startTime;
	/**
	 * 通用结束时间，格式：yyyy-MM-dd HH:mm
	 */
	private Date endTime;
	
	/**
	 * 通用关键字
	 */
	private String key;
	
	/**
	 * 需要排序的列
	 */
	private String sortName;
	
	/**
	 * 需要排序的方式 asc|desc
	 */
	private String sortOrder;
	
	/**
	 * 是否已经标识为删除
	 */
	private Boolean delete = false;
	
	/**
	 * 是否需要统计总数，默认：true
	 */
	private Boolean count = true;


	public void setStartDate(Date startDate) {
		this.startDate = startDate;
		formatStartEnd(this.startDate, this.endDate);
	}


	public void setEndDate(Date endDate) {
		this.endDate = endDate;
		formatStartEnd(this.startDate, this.endDate);
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
		formatStartEnd(this.startTime, this.endTime);
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
		formatStartEnd(this.startTime, this.endTime);
	}

	/**
	 * 调整时间，确保第一个时间小于第二个时间
	 * @param d1
	 * @param d2
	 */
	private void formatStartEnd(Date d1, Date d2) {
		if (d1 != null && d2 != null) {
			if(d1.after(d2)) {
				long d3 = d2.getTime();
				d2.setTime(d1.getTime());
				d1.setTime(d3);
			}
		}
	}
	
}
